package com.seguriapp.services;

import java.util.List;

import com.seguriapp.entities.District;
import com.seguriapp.entities.SeguriAppEntity;
import com.seguriapp.entities.SeguriAppEntityType;
import com.seguriapp.util.SearchFilterEntity;

/**
 * SeguriAppEntity Service
 * 
 * @author Tania Gonzales (taniadgv@gmail.com)
 */
public interface EntityService {

  void saveEntity(SeguriAppEntity entidad);

  List<SeguriAppEntity> listEntities();

  void deleteEntity(SeguriAppEntity entidad);

  List<SeguriAppEntity> listEntitiesByUbication(double latitude, double longitude, double radio);

  List<SeguriAppEntity> listEntitiesByCategories(List<Long> categoriesIdsList, Long userId);

  List<SeguriAppEntity> listEntitiesByCategories(List<Long> categoriesIdsList, double latitude, double longitude);

  List<SeguriAppEntityType> getSeguriAppEntityTypeList();

  List<District> getDistrictsList(Long provinceId);

  List<SeguriAppEntity> listEntities(SearchFilterEntity searchFilter);

  long getEntitiesTotalPages(SearchFilterEntity searchFilter);

}
